/*
 【入门】猴子吃桃子 (用递归的方法解题)
  题目描述
    猴子吃桃子问题：
      猴子第一天摘下若干个桃子，当即吃了一半还不过瘾，又多吃了一个；
      第二天又将剩下的桃子吃掉一半又多吃了一个；
      以后每天早上都吃了前一天剩下的一半零一个。
      到了第十天想再吃时，见只剩下一个桃子，求第一天共摘了多少个桃子？
  输出
    一个整数，第一天共有多少个桃子
*/

#include <bits/stdc++.h>

using namespace std;

int f(int n) {
    if (n == 10) { // 注意这里的边界条件, 建议在草稿本上推敲确定这个条件(为 9, 还是10, 还是 11?)!
        return 1;
    } else {
        return (f(n + 1) + 1) * 2;
    }
}

int main() {
    cout << f(1);

    return 0;
}